package com.ruoyi.system.hbos.tool;


import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.system.hbos.domain.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


/**
 * 获取json工具类
 * @author xmd
 *
 */
public class HbosDataUtils {

    private static final Logger logger = LoggerFactory.getLogger("hbos-info");

    private static final Boolean isLogger = true;

    /**
     * 服务项目查询
     * @param hbosInput 服务项目查询--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosItem(HbosItemInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_ITEM_SEARCH;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }

    /**
     * 科室信息查询
     * @param hbosInput 科室信息查询--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosDept(HbosDeptInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_DEPT_SEARCH;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }

    /**
     * 医护信息查询
     * @param hbosInput 医护信息查询--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosPersonnel(HbosPersonnelInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_PERSONNEL_SEARCH;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }

    /**
     * 患者体征查询
     * @param hbosInput 患者体征查询--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosHealthcare(HbosHealthcareInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_HEALTHCARE_SEARCH;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }



    /**
     * 检查报告查询服务
     * @param hbosInput 检查报告查询服务--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosCreport(HbosCreportInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_CREPORT_SEARCH;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }

    /**
     * 常规检验报告查询（新）
     * @param hbosInput 常规检验报告查询（新）--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosRreport(HbosRreportInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_RREPORT_SEARCH;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }

    /**
     * 微生物检验报告查询（新）
     * @param hbosInput 微生物检验报告查询（新）--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosMreport(HbosMreportInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_MREPORT_SEARCH;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }

    /**
     * 新增居民档案信息服务
     * @param hbosInput 新增居民档案信息服务--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosArecord(HbosArecordInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_ARECORD_ADD;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }

    /**
     * 更新居民新档案信息服务
     * @param hbosInput 更新居民新档案信息服务--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosUrecord(HbosUrecordInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_URECORD_UPDATE;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }

    /**
     * 查询居民档案信息服务
     * @param hbosInput 查询居民档案信息服务--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosRrecord(HbosRrecordInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_RRECORD_SEARCH;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }

    /**
     * 电子医保凭证读卡服务
     * @param hbosInput 电子医保凭证读卡服务--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosCard(HbosCardInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_CARD_SEARCH;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }

    /**
     * 医嘱列表分页查询
     * @param hbosInput 医嘱列表分页查询--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosAdvice(HbosAdviceInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_ADVICE_SEARCH;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }

    /**
     * 分诊服务
     * @param hbosInput 分诊服务--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosAtriage(HbosAtriageInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_ATRIAGE_SEARCH;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }
    /**
     * 撤销分诊
     * @param hbosInput 撤销分诊--参数对象
     * @return JSONObject
     * @author: xmd
     * @date: 2024-04-21
     */
    public static JSONObject getHbosDtriage(HbosDtriageInput hbosInput) {
        JSONObject json = null;

        // 设置接口地址
        String requestUrl = HbosUrlUtils.HBOS_DTRIAGE_SEARCH;
        // 设置app_key
        String app_key = HbosUrlUtils.HBOS_APP_KEY;
        // 设置接口查询条件
        BaseEntityHbos baseEntityHobs = hbosInput;
        // 设置机构ID
        hbosInput.setOrgId(HbosUrlUtils.HBOS_ORG_ID);
        // 执行访问接口
        json = HttpInvoker.exec(requestUrl, "POST", null, app_key, baseEntityHobs);
        // 日志记录
        if(isLogger)logger.info("HBOS接口日志：\n HBOS接口地址：" + requestUrl + " \n HBOS返回值：" + json);

        return json;
    }

}
